

package main.new_2024.month_03;


import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * @Description: todo 232. 用栈实现队列
 * 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作（push、pop、peek、empty）：
 * 实现 MyQueue 类：
 * void push(int x) 将元素 x 推到队列的末尾
 * int pop() 从队列的开头移除并返回元素
 * int peek() 返回队列开头的元素
 * boolean empty() 如果队列为空，返回 true ；否则，返回 false
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0304 {

    //用栈实现队列
    class MyQueue {
        Stack<Integer> stack1;
        public MyQueue() {
            stack1 = new Stack<>();
        }
        public void push(int x) {
            Stack<Integer> temp = new Stack<>();
            //原来的转移到temp
            while (!stack1.isEmpty()){
                temp.add(stack1.pop());
            }
            stack1.push(x);
            while (!temp.isEmpty()){
                stack1.push(temp.pop());
            }
        }

        public int pop() {
            return stack1.pop();
        }

        public int peek() {
            return stack1.peek();
        }

        public boolean empty() {
            return stack1.isEmpty();
        }
    }

}

